using System;
using System.Collections.Generic;
using System.Threading.Tasks;
using GoChat_for_Windows.Models;

namespace GoChat_for_Windows.Services
{
    public interface IApiService
    {
        // 用户相关
        Task<User> LoginAsync(string username, string password);
        Task<bool> RegisterAsync(string username, string password, string nickname);
        Task<bool> UpdateUserProfileAsync(User user);
        Task<List<User>> GetUserListAsync();
        
        // 消息相关
        Task<List<Message>> GetMessageHistoryAsync(int senderId, int receiverId, int pageSize, int pageNumber);
        Task<bool> SendMessageAsync(Message message);
        Task<bool> MarkMessageAsReadAsync(int messageId);
        
        // 文件传输
        Task<string> UploadFileAsync(string filePath, string fileType);
        Task<bool> DownloadFileAsync(string fileUrl, string savePath, IProgress<double> progress);
        
        // 状态相关
        Task<bool> UpdateUserStatusAsync(string status);
        Task<bool> HeartbeatAsync();
    }
} 